Field of the Invention
This invention relates generally to the field of computer processors. More particularly, the invention relates to an apparatus and method for direct and interactive ray tracing of a subdivision surface.
Description of the Related Art
Subdivision surface is widely adopted in the digital content creation (DCC) industry because it is smooth, it supports arbitrary topology, and it can be deformed efficiently. Briefly, subdivision surface techniques are used to represent a smooth surface through the specification of a coarser polygon mesh. The smooth surface may be calculated from the coarse polygon mesh using a recursive process of subdividing each polygonal face into smaller faces that more accurately approximate the smooth surface.
In rasterization-based rendering systems (e.g., REYES or Renders Everything You Ever Saw), the subdivision surface is usually tessellated into triangles, and the triangles are immediately rasterized into a frame buffer. The tessellated mesh does not need be in memory after rasterization. In contrast, in ray tracing-based rendering systems (e.g., MCRT or Monte Carlo Ray Tracing), the entire tessellated mesh needs to be in memory before rendering is done since a ray may hit the mesh in any direction at any time. Consequently, for a production renderer using ray tracing, the memory required for the tessellated meshes can easily exceed the capacity of modern computer systems.
Tessellation is usually done in the camera space so that surfaces which are close to the camera should be finely tessellated, and surfaces which are far away from the camera should be coarsely tessellated. View-dependent tessellation means that tessellation needs be done every time the camera moves, even though the subdivision surface does not change. For a ray tracing system, this also leads to rebuilding the bounding volume hierarchy (BVH).